System for distributing files and transmitting/receiving distributed files

ABSTRACT

A system for distributing files and transmitting/receiving the distributed files includes a file distribution/transmission/reception module depending upon an application program executable in a client computer and is performed in a background process of an application program execution module. The file distribution/transmission/reception module receives the files designated by a host computer from a network and then stores the received files, while the application program is executed. The file distribution/transmission/reception module transmits corresponding files to another client computer if the corresponding files exist, in response to another client computer&#39;s request for transmission of files designated on the host computer. The system distributes a load of the network and increases a file transmission rate by receiving and storing distributed transmission files while the application program is executed, and reduces the network load associated with a file storage computer by receiving the transmission files from the file storage computer and from other client computers.

CROSS REFERENCE TO RELATED APPLICATIONS

This utility patent application is a continuation of allowed U.S. patentapplication Ser. No. 10/628,938 filed on Jul. 28, 2003, which claimspriority to Republic of Korea Patent Application No. 10-2002-0045830filed on Aug. 2, 2002, all of the priority benefits of which are claimedunder 35 U.S.C. §120 and 35 U.S.C. §119, respectively, and both of whichare further incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a system for distributing files andtransmitting/receiving the distributed files, and more particularly totechnologies of distributing files through a network andtransmitting/receiving the distributed files.

2. Description of the Related Art

When a predetermined application program is executed in a method fortransmitting/receiving files through a conventional network, acorresponding application program execution module sends a query to anupdate server to enquire whether at least one file needed for acorresponding application program has been updated. If files needed forthe corresponding application program have been updated, the applicationprogram execution module receives the files needed for the applicationprogram from the update server according to a response to the query fromthe update server and performs an update operation for the applicationprogram.

However, where the capacity of files to be updated in theabove-described conventional method is large and the number of computersdesiring to access the update server is large when the update operationis performed, the load of a network is significant, and hence aconnection to the update server may be frequently cut off or may not beappropriately performed. In this case, a period of time needed forperforming the update operation increases.

To address the above-described problems, there has been recentlydeveloped a method for distributing the predetermined number of files tobe updated, receiving the distributed files from the update server inadvance, storing the distributed files, and executing a correspondingapplication program, when a user desires to execute the applicationprogram.

In other words, the recently developed method is useful in that it candistribute a predicted load of the network by receiving thepredetermined number of distributed files to be updated before theapplication program is executed.

However, since the method independently and separately performs aprocess of transmitting the files to be updated and a process ofexecuting the application program, there is another problem in that aperiod of time for waiting for the corresponding application program tobe executed is long, where the number of files to be updated and thefile capacity are large.

Moreover, there is another problem in that the method can receive onlyupdate files needed for executing the application program and cannotreceive other files needed for executing other application programs.

For this reason, the applicant of the present invention has developed asystem for distributing files in advance in a background process of anapplication program, and receiving and storing the distributed files,such that the load of a network can be reduced. Further, the systemsimultaneously performs a process of transmitting the files and aprocess of executing the application program, thereby reducing a periodof time for waiting for the application program to be executed.Furthermore, the system receives the distributed files not only from afile server, but also from other client computers, and stores thereceived files, thereby significantly reducing the load of the fileserver or network.

SUMMARY OF THE INVENTION

Therefore, the present invention has been made in view of the aboveproblems, and it is one object of the present invention to provide asystem for distributing files and transmitting/receiving the distributedfiles, which includes a file distribution/transmission/reception moduledepending upon an application program executable in a client computerand performed in a background process of a corresponding applicationprogram execution module, thereby receiving files designated on a hostcomputer from a network and storing the received files, while theapplication program is executed.

It is another object of the present invention to provide a system fordistributing files and transmitting/receiving the distributed files,which can transmit corresponding files to another client computer if thecorresponding files exist, in response to another client computer'srequest for transmission of files designated on a host computer.

It is yet another object of the present invention to provide a systemfor distributing files and transmitting/receiving the distributed files,which can send a request for transmission of files designated on a hostcomputer to at least one client computer connected to a subnetwork, andreceive corresponding files from a client computer selected from amongclient computers, connected to the sub-network, responsive to the filetransmission request.

In accordance with an aspect of the present invention, the above andother objects can be accomplished by the provision of a system fordistributing files and transmitting/receiving the distributed files,comprising: a file distribution/transmission/reception module dependingupon an application program executable in a client computer andperformed in a background process of a corresponding application programexecution module, the file distribution/transmission/reception modulereceiving files designated on a host computer from a network and storingthe received files while an application program is executed, ortransmitting corresponding files to another client computer if thecorresponding files exist, in response to another client computer'srequest for transmission of the files designated on the host computer.

Preferably, the file distribution/transmission/reception module may senda request for the transmission of the files designated on the hostcomputer to at least one client computer connected to a sub-network, andreceive corresponding files from a client computer selected from amongclient computers, connected to the sub-network, responsive to the filetransmission request.

Preferably, the file transmission request may be sent to other clientcomputers connected to the host computer, if no client computerconnected to the sub-network is responsive to the file transmissionrequest, and corresponding files may be received from a client computerselected from among the other client computers, connected to the hostcomputer, responsive to the file transmission request.

Preferably, the file transmission request may be sent to a file storagecomputer designated by the host computer, if no client computerconnected to the host computer is responsive to the file transmissionrequest, and the corresponding files may be received from the filestorage computer.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects, features and other advantages of thepresent invention will be more clearly understood from the followingdetailed description taken in conjunction with the accompanying drawing,in which:

FIG. 1 is a schematic diagram illustrating a filedistribution/transmission/reception system in accordance with thepresent invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Hereinafter, preferred embodiments in accordance with the presentinvention will be described in detail with reference to the annexeddrawing such that those skilled in the art can readily implement thepresent invention. FIG. 1 is a schematic diagram illustrating a filedistribution/transmission/reception system in accordance with thepresent invention. As shown in FIG. 1, the system includes a hostcomputer 10, an authentication computer 20, a file storage computer 30and a plurality of client computers 40.

The host computer 10 transmits data needed for executing an applicationprogram to a client computer 40 connected through a network such thatthe client computer 40 can execute the application program.

The authentication computer 20 performs an authentication procedure inresponse to access information from the client computer 40, whichaccesses the host computer 10. The authentication computer 20 transmitsa result of the authentication procedure to the host computer 10. If theclient computer 40 accessing the host computer 10 is authentic, theclient computer 40 can receive the data needed for executing theapplication program from the host computer 10 and then execute theapplication program.

The file storage computer 30 stores an installation file of acorresponding application program, files to be updated and various filesto be transmitted when the application program is executed. Under thecontrol of the host computer 10, the files are transmitted in abackground process of the application program when the applicationprogram is executed.

The host computer 10, the authentication computer 20 and the filestorage computer 30 can be physically or logically separated andinstalled.

The client computer 40 can be connected to the host computer 10 througha sub-network 50 such as an Internet cafe, etc. or another network suchthat the client computer 40 can receive data needed for executing theapplication program from the host computer 10 and then execute theapplication program.

The system of the present invention includes an application programexecution module 41 and a file distribution/transmission/receptionmodule 42.

The application program execution module 41 is software for executingthe application program and executes the application program in aforeground process.

At this time, the application program execution module 41 accesses thehost computer 10 through the network and then sends an authenticationrequest to the host computer 10. It is preferable that the applicationprogram execution module 41 receives data needed for executing theapplication program from the host computer 10 and then executes theapplication program, according to the authentication procedure of theauthentication computer 20.

That is, the host computer 10 transmits the data needed for executingthe application program to the client computer 40. The applicationprogram execution module 41 executable in the client computer 40receives the data needed for executing the application program and thenexecutes the application program in the foreground process.

As an example, in a state where the client computer 40 is connected tothe network, if the application program execution module 41 is executedand an identification (ID) and a password are inputted and transmittedto the host computer 10, the host computer 10 receives accessinformation including the ID and the password and sends anauthentication request by transmitting the access information to theauthentication computer 20.

At this time, a corresponding client computer 40 transmits membershipinformation to the host computer 10 in advance, according to apredetermined membership subscription procedure. If it is assumed thatthe membership information has been registered in the authenticationcomputer 20, the authentication computer 20 searches for the membershipinformation and performs the authentication procedure. Since techniquesrelating to the membership registration and authentication are wellknown to those skilled in the art, a detailed description of thetechniques is omitted.

If the authentication computer 20 determines that a corresponding clientcomputer 40 is authentic, the host computer 10 transmits the data neededfor executing the application program to the client computer 40, and theapplication program execution module 41 executable in the clientcomputer 40 receives the data needed for executing the applicationprogram and then executes the application program in the foregroundprocess.

The module 42 depends upon an application program executable in theclient computer 40 and is performed in the background process of theapplication program execution module 41. The module 42 receives filesdesignated on the host computer 10 from the network and stores thereceived files, while the application program is executed.Alternatively, the module 42 can transmit corresponding files to anotherclient computer if the corresponding files exist, in response to anotherclient computer's request for transmission of files designated on thehost computer 10.

In other words, the module 42 is software for receiving the files to betransmitted. When the module 42 is executed in the background processwhile the application program execution module 41 of the client computer40 is executed in the foreground process, the module 42 receives thefiles to be transmitted from the network and stores the received files.

Moreover, the module 42 can transmit a request for transmission of filesdesignated on the host computer 10 to at least one client computer 40connected to the sub-network 50, and receive corresponding files from aclient computer 40 selected from among other client computers, connectedto the sub-network 50, responsive to the file transmission request.

In other words, when the module 42 receives the files designated on thehost computer 10, the file transmission request is sent to other clientcomputers belonging to the sub-network 50, e.g., client computers of theInternet cafe. The module 42 can receive the corresponding files from aclient computer selected from among the client computers, connected tothe sub-network 50, responsive to the file transmission request. Thus,the module 42 can receive the files not only from the file storagecomputer 30, but also from other client computers belonging to the samesub-network 50, thereby reducing a load of the network associated withthe file storage computer 30.

On the other hand, if a response to the file transmission request is notreceived from any of other client computers connected to the sub-network50, the file transmission request is sent to other client computersconnected to the host computer 10. The module 42 can receivecorresponding files from a client computer selected from among theclient computers, connected to the host computer 10, responsive to thefile transmission request.

That is, when no client computer connected to the subnetwork 50 isresponsive to the file transmission request where the module 42 receivescorresponding files, the module 42 transmits the file transmissionrequest to the respective client computers connected to the hostcomputer 10. The module 42 can receive the corresponding files from theclient computer selected from among the client computers, connected tothe host computer 10, responsive to the file transmission request. Thus,the module 42 can receive the files not only from the file storagecomputer 30, but also from other client computers currently connected tothe host computer 10, thereby reducing a load of the network associatedwith the file storage computer 30.

At this time, it is preferable that the module 42 receives a list ofclients currently connected to the host computer 10, and transmits thefile transmission request to client computers 40 contained in the listof clients.

Moreover, when files are received from a client computer selected fromamong other client computers responsive to the file transmissionrequest, it is preferable that a client computer responsive to the filetransmission request for the first time is selected and the files arereceived from the selected client computer.

The module 42 carries out an offset division operation for acorresponding file on the basis of the number of client computersresponsive to the file transmission request within a predetermined time,receives data of different offset areas from the responsive clientcomputers, combines items of the data of the different offset areas intoa single file, and stores the file.

In other words, the module 42 carries out the offset division operationfor the corresponding file on the basis of the number of clientcomputers responsive to the file transmission request within apredetermined time, receives the data of different offset areas from theresponsive client computers, and combines the items of the data of thedifferent offset areas into the single file, thereby receiving dividedfile data items from a plurality of client computers.

On the other hand, where no client computer connected to the hostcomputer 10 is responsive to the file transmission request, the filetransmission request is sent to the file storage computer 30 designatedby the host computer 10 and corresponding files are received from thefile storage computer 30.

In other words, where there is no client computer connected to the hostcomputer 10 responsive to the file transmission request when the filesare received through the module 42, the module 42 transmits the filetransmission request to the file storage computer 30 and then receivescorresponding files from the file storage computer 30, therebydistributing a load of the network and hence increasing an entireoperation speed when the file transmission operation is performed.

It is preferable that the list of files designated on the host computer10 is received from the host computer 10 every time an applicationprogram is accessed.

On the other hand, the file storage computer 30 can be the host computer10. In this case, the host computer 10 stores transmission files in itsown database and then transmits the transmission files in response tothe file transmission request from the client computer 40 connected tothe network.

It is preferable that the files received by the module 42 are stored ina predetermined folder. That is, it is preferable that the transmissionfiles received by the module 42 are stored in another folder differentfrom a folder storing the application program executable in theforeground process.

The files received and stored by the module 42 can be update files ofthe application program. Thus, a client computer can readily distributethe files to be updated and receive the distributed files while theapplication program is executed, as when the client computer distributesand stores the files of an on-line game program to be updated in advancewhile the on-line game program is executed. The system of the presentinvention further includes an update execution module 43 for updatingthe application program execution module 41 using the stored files to beupdated at an update time.

The update execution module 43 is software for updating the files to beupdated at the update time. Before the application program executionmodule 41 is executed, the update execution module 43 is independentlyexecuted in the foreground process. The update execution module 43 isexecuted in the foreground process at the update time, updates theapplication program execution module 41 using the received update files,and executes the application program execution module 41.

In this case, the module 42 stores the received update files in apredetermined update file folder. Thus, it is preferable that the updatefiles stored in the predetermined update file folder are copied orshifted to a corresponding application program folder, when the updateexecution module 43 performs an update operation.

As described above, since the files to be updated are received andstored through the module 42 while the application program is executed,a capacity of initial distribution can be reduced at a time ofperforming an update operation through the update execution module 43and the load of the network can be distributed, thereby entirelyincreasing an update operation speed.

Moreover, the files received and stored by the module 42 can beassociated with an installation or execution of another applicationprogram.

In other words, when there are received files associated with anotherapplication program, but not associated with the executed applicationprogram, while a predetermined application program is executed, anotherapplication program can be executed in a time set by the host computer10 or in response to a client's execution command. Thus, when a newlyreleased game program is transmitted while a predetermined game programis executed, the newly released game program can be automaticallyexecuted. At this time, the newly released game program can beadvertised to the client and various contents or files associated withthe newly released game program can be provided to the client.

The files received and stored by the module 42 can be data filesreadable by the application program or another application program. Thatis, various music or image files are received while a predeterminedapplication program is executed, and the received files can be readlater on by a predetermined program.

It is preferable that the module 42 checks a file transmission error forcompletely received files when the application program is executed suchthat a corresponding file can be re-transmitted when the correspondingfile is erroneous.

In other words, the module 42 performs a cyclic redundancy code (CRC)check for the completely received files using a CRC character of eachfile contained in the information of the transmission file list suchthat a corresponding file can be re-transmitted when the correspondingfile is erroneous.

Transmission files designated on the host computer 10 can havetransmission priorities when the files are transmitted to the clientcomputer 40.

That is, the transmission file list information received from the hostcomputer 10 includes the transmission priorities of the transmissionfiles. When the transmission files are received through the module 42,the files are received on the basis of the transmission priorities.

At this time, the host computer 10 or the module 42 can randomlydesignate the transmission priorities.

It is preferable that a CPU occupancy ratio of the module 42 isrelatively smaller than that of the application program execution module41 such that influence of the module 42 executed in the backgroundprocess with respect to the application program execution module 41executed in the foreground process can be minimized.

That is, the module 42 is repeatedly executed and stopped in thebackground process of the application program execution module 41 in avery short time at a predetermined time interval, such that the CPUoccupancy ratio of the module 42 becomes relatively smaller than that ofthe application program execution module 41.

Since a speed for executing an application program such as an on-linegame program is very important to a user, it is not preferable that aspeed for executing the application program is reduced, when the filesare transmitted while the application program is executed. Thus, the CPUoccupancy ratio of the module 42 must be relatively smaller than that ofthe application program execution module 41. The module 42 must berepeatedly executed and stopped in the background process of theapplication program execution module 41 in the very short time at thepredetermined time interval.

Where receiving the files designated by the host computer 10, the module42 updates information of a file transmission state and then the updatedinformation is stored in a computer designated by the host computer 10.

The module 42 must recognize which file of the transmission filescontained in the transmission file list information has been receivedsuch that a previously received file cannot be re-transmitted when themodule 42 is re-executed. As the module 42 receives the transmissionfiles, and updates and stores the file transmission state information,the module 42 can recognize which file of the transmission filescontained in the transmission file list information has been received.The updated file transmission state information can be used asstatistical data for a server, since it is transmitted and stored to thefile storage computer 30.

Thus, the system of the present invention enables a filedistribution/transmission/reception module to be executed in abackground process of an application program execution module executablein a foreground process such that transmission files designated by ahost computer can be received from a network according to a transmissionfile list and the received files can be stored. In response to a filetransmission request from another client computer, the filedistribution/transmission/reception module transmits at least onecorresponding transmission file if the corresponding transmission fileexists. Further, the file distribution/transmission/reception module canreceive the transmission files from the file storage computer, ortransmit a request for transmission of files designated on a hostcomputer to at least one client computer connected to a sub-network, andreceive corresponding files from a client computer selected from amongclient computers, connected to the sub-network, responsive to the filetransmission request.

If there is no response to the file transmission request from otherclient computers connected to the sub-network, the file transmissionrequest is sent to other client computers connected to the host computerand then the files are received computers, connected to the hostcomputer, responsive to the file transmission request. On the otherhand, if there is no response to the file transmission request fromother client computers connected to the host computer, the filetransmission request is sent to a file storage computer. As thetransmission files are received from the file storage computer, thereceived transmission files are stored while the application program isexecuted.

As described above, it is preferable that files needed for executing anapplication program in a file distribution/transmission/reception systemof the present invention can be applied to updating an on-line gameprogram. Optionally, the files needed for executing the applicationprogram in the system of the present invention can be preferably appliedto updating software for updating data files needed for executing theapplication program through the network. Moreover, the present inventioncan be applied to distributing and receiving all files such as variousmusic files, image contents files or installation or executable filesfor other application programs.

Therefore, the above-described objects of the present invention can beaccomplished by the above-described system.

As apparent from the above description, the present invention provides afile distribution/transmission/reception system, which can distribute aload of a network and entirely increase a file transmission rate byreceiving and storing distributed transmission files while anapplication program is executed, and reduce the load of the networkassociated with a file storage computer by receiving the transmissionfiles not only from the file storage computer, but also from otherclient computers.

The preferred embodiments of the present invention have been disclosedfor illustrative purposes. Further, those skilled in the art willappreciate that various modifications, additions and substitutions arepossible, without departing from the scope and spirit of the inventionas disclosed in the accompanying claims.

1. A method for distributing files over a network to a plurality ofclients, comprising: employing a module at each client as a backgroundprocess to receive and store a file designated at a host; employing anapplication program at each client as a foreground process while themodule is performing as the background process; and in response to arequest by one of the plurality of clients for the file designated atthe host, providing the requested file from at least one of the host oranother one of the plurality of clients.
 2. The method of claim 1,further comprising: performing an authentication procedure on a clientthat is requesting the file designated at the host; and if the client isauthenticated by the procedure, communicating a result of the procedureto the host, wherein the host enables the providing of the file to theclient based on the result.
 3. The method of claim 1, wherein providingthe requested file further comprises enabling the module to transmit therequested file for the other one of the plurality of clients.
 4. Themethod of claim 1, further comprising enabling a first processoroccupancy ratio of the module to be relatively smaller than a secondprocessor occupancy ratio of the application program.
 5. The method ofclaim 1, wherein providing the requested file, further comprises if aclient and at least one other of plurality of clients are on asub-network and the file is available at the one other client on thesub-network, enabling the one other client to provide the file to theclient.
 6. The method of claim 1, wherein providing the requested file,further comprises if the file is unavailable from any other of theplurality of clients on a sub-network and the file is available at oneother client on the network, enabling the one other client on thenetwork to provide the file to the client.
 7. The method of claim 1,wherein providing the requested file, further comprises if the file isunavailable from any other of the plurality of clients, enabling thehost to provide the file to the client.
 8. The method of claim 1,further comprising providing a list to each of the plurality of clients,wherein the list indicates each client that is storing a copy of thefile designated at the host.
 9. A host for enabling distribution offiles over a network to a plurality of clients, comprising: a memory forstoring data; a processor for enabling actions based on processing ofthe stored data, including: enabling a module at each client to performas a background process to receive and store a file designated at thehost; enabling an application program at each client to perform as aforeground process while the module is performing as the backgroundprocess; and in response to a request by one of the plurality of clientsfor the file designated at the host, enabling the requested file to beprovided from at least one of the host or another one of the pluralityof clients.
 10. The host of claim 9, wherein the processor enablesfurther actions, comprising: enabling an authentication procedure to beperformed on a client that is requesting the file designated at thehost; and if the client is authenticated by the procedure, enablingcommunication of a result of the procedure to the host, wherein the hostenables the providing of the file to the client based on the result. 11.The host of claim 9, wherein the providing of the requested file furthercomprises enabling the module to transmit the requested file for theother one of the plurality of clients.
 12. The host of claim 9, furthercomprising enabling a first processor occupancy ratio of the module tobe relatively smaller than a second processor occupancy ratio of theapplication program.
 13. The host of claim 9, wherein the providing ofthe requested file, further comprises if a client and at least one otherof plurality of clients are on a sub-network and the file is availableat the one other client on the sub-network, enabling the one otherclient to provide the file to the client.
 14. The host of claim 9,wherein the providing of the requested file, further comprises if thefile is unavailable from any other of the plurality of clients on asub-network and the file is available at one other client on thenetwork, enabling the one other client on the network to provide thefile to the client.
 15. The host of claim 9, wherein the providing ofthe requested file, further comprises if the file is unavailable fromany of the plurality of clients, the host provides the file to theclient.
 16. The host of claim 9, wherein the processor enables furtheractions, comprising providing a list to each of the plurality ofclients, and wherein the list indicates each client storing a copy ofthe file designated at the host.
 17. A client for enabling distributionof files over a network to a plurality of clients, comprising: a memoryfor storing data; a processor for enabling actions based on processingof the stored data, including: employing a module as a backgroundprocess to receive and store a file designated at the host; employing anapplication program as a foreground process while the module isperforming as the background process; and if the file designated at thehost is available at the client, providing the file to another one ofthe plurality of clients in response to a request for the file by thesame other one of the plurality of clients.
 18. The client of claim 17,further comprising: enabling an authentication procedure to be performedon the client in response to requesting the file designated at the host;and wherein a result of the authentication procedure is communicated tothe host, and wherein based on the result the host enables the providingof the file to the client.
 19. The client of claim 17, wherein theproviding of the requested file further comprises enabling the module totransmit the file to another one of the plurality of clients.
 20. Theclient of claim 17, further comprising enabling a first processoroccupancy ratio of the module to be relatively smaller than a secondprocessor occupancy ratio of the application program.
 21. The client ofclaim 17, wherein the providing of the requested file, further comprisesif the client and at least one other client are on a sub-network and thefile is available at the one other client on the sub-network, enablingthe one other client to provide the file to the client.
 22. The clientof claim 17, wherein the providing of the requested file, furthercomprises if the file is unavailable from any other of the plurality ofclients on a sub-network and the file is available at one other clienton the network, enabling the one other client on the network to providethe file to the client.
 23. The client of claim 17, wherein theproviding of the requested file, further comprises if the file isunavailable from any of the plurality of clients, the host provides thefile to the client.
 24. The client of claim 17, further comprisingreceiving a list from the host, wherein the list indicates each clientthat is storing a copy of the file designated at the host.
 25. A filefolder that includes processor executable data for distributing filesover a network to a plurality of clients, wherein the execution of thedata enables actions, comprising: enabling a module at each client toperform as a background process to receive and store a file designatedat a host; enabling an application program at each client to perform asa foreground process while the module is performing as the backgroundprocess; and in response to a request by one of the plurality of clientsfor the file designated at the host, enabling the requested file to beprovided by at least one of the host or another one of the plurality ofclients.
 26. The file folder of claim 25, further comprising: enablingan authentication procedure to be performed on a client that isrequesting the file designated at the host; and if the client isauthenticated by the procedure, enabling communication of a result ofthe procedure to the host, wherein the host enables the providing of thefile to the client based on the result.
 27. The file folder of claim 25,wherein providing the requested file further comprises enabling themodule to transmit the requested file for the other one of the pluralityof clients.
 28. The file folder of claim 25, wherein the actions furthercomprise enabling a first processor occupancy ratio of the module to berelatively smaller than a second processor occupancy ratio of theapplication program.
 29. The file folder of claim 25, wherein providingthe requested file, further comprises if a client and at least one otherof plurality of clients are on a sub-network and the file is availableat the one other client on the sub-network, enabling the one otherclient to provide the file to the client.
 30. The file folder of claim25 wherein providing the requested file, further comprises if the fileis unavailable from any other of the plurality of clients on asub-network and the file is available at one other client on thenetwork, enabling the one other client on the network to provide thefile to the client.
 31. The file folder of claim 25, wherein providingthe requested file, further comprises if the file is unavailable fromany other of the plurality of clients, enabling the host to provide thefile to the client.
 32. The file folder of claim 25, wherein the actionsfurther comprise providing a list to each of the plurality of clients,wherein the list indicates each client that is storing a copy of thefile designated at the host.